People are continually expanding the uses of computers and digital media devices in homes, workplaces, schools, and universities. For example, a recent trend involves people recording audio and video streams using devices such as digital audio samplers and video camcorders, as well as portable media recorders and players. People may record audio and video data onto temporary storage mediums, such as analog or digital cassette tapes, and transfer those multimedia streams to more permanent storage mediums, such as digital versatile discs (DVDs) and compact discs (CDs). To transfer such streams from one storage medium to another, people may use desktop or laptop computers. These transfers tend to use a mass storage device to temporarily store the data, which may be a hard disk drive or an optical storage drive.
Multimedia streams frequently require adherence to critical transfer timing parameters. If the mass storage device misses a timing parameter, such as a transfer deadline, it may create error-laden or inferior quality multimedia streams, such as dropped frames of video information. While a user plays back the multimedia content, dropped frames can significantly reduce the user experience.
To complicate matters, additional operating factors may also impact or affect the storage of these modern data streams. These factors may involve concurrently using multiple applications on a single platform, such as recording multiple streams of multimedia content, while simultaneously executing applications, such as Microsoft® Excel® or Microsoft® Word. Some applications generate small random input-output (I/O) tasks for the platform and data storage device. In a scenario like this, a storage controller of the platform will receive numerous I/O requests coming from the concurrent applications. Unfortunately, existing controllers and/or device drivers cannot adequately handle high priority asynchronous data requests and isochronous requests that are received in order to complete the requests by required request deadlines. Existing hardware and software, including device drives, have no means to identify isochronous requests and associated specific completion deadlines for those requests, in order to help prevent bottlenecks and degrades system performance when processing asynchronous and isochronous I/O requests.
In this context, high priority asynchronous requests refer to user interactive requests that are typically serviced with the highest precedence to minimize user wait time. Examples of high priority requests are those issued by interactive applications such as Microsoft® Excel® or Microsoft® Word. Normal priority asynchronous requests are generally less sensitive to timing and include those requests related created by file copying. Isochronous requests are considered requests with soft deadlines that do not need to be serviced immediately but should be serviced within a specific time frame.